package job.work.dao.system.dao;

import job.work.domain.system.entity.pojo.DecRoleMenu;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;

import java.util.List;
import java.util.Set;

/**
 * Created by Administrator.
 */
public interface DecRoleMenuDao extends JpaRepository<DecRoleMenu,Long>, JpaSpecificationExecutor<DecRoleMenu> {

    /**
     * 根据角色ID查询角色权限
     * @param roleId 角色ID
     * @return 权限ID集合
     */
    List<DecRoleMenu>  findByRoleId(Long roleId);

    /**
     * 根据菜单权限ID删除 相应的权限数据
     * @param menuId 菜单权限Id
     */
    void deleteAllByMenuId(Long menuId);

    /**
     * 根据角色ID删除 相应的权限数据
     * @param roleId 角色Id
     */
    void deleteAllByRoleId(Long roleId);

    /**
     * 根据菜单ID查询权限信息
     * @param menuId
     * @return
     */
    List<DecRoleMenu> findByMenuId(Long menuId);

    @Query(value = "SELECT menu_id FROM dec_role_menu WHERE role_id =:roleId" ,nativeQuery = true)
    Set<Long> findByMenu(@Param("roleId") Long roleId);


}
